This is a corrected version of the initializeDefaultTimeZone:
method in the TimeZone class. This version ensures that the
change from GMT to BST is made on the *correct* dates. If you
are using this in yet another country you'll have to alter the
values again!! If you think the values are wrong please let me
(ajb@r5) know, and I'll do a bit more thinking (It's the only
piece of code that I know that takes over six months to test
:-). (2.2)
"!
'From Smalltalk-80, Version 2.2 of July 4, 1987 on 27 March 1988 at 3:51:12 pm'!
!TimeZone class methodsFor: 'class initialization'!
initializeDefaultTimeZone: hoursFromGMT
"Install a default TimeZone with hours offset from Greenwich mean time. The code for this has been corrected for changing to and from British Summer Time (BST)."
"TimeZone initializeDefaultTimeZone: -8. for California
TimeZone initializeDefaultTimeZone: -5. for NewYork
TimeZone initializeDefaultTimeZone: 0. for London
TimeZone initializeDefaultTimeZone: 1. for Dortmund"
DefaultTimeZone _ self
timeDifference: hoursFromGMT
DST: 1 "1 hour DST"
at: 2 "starting at 2 AM"
from: 60 + 27 "on (first Sunday preceding) March 28."
to: 274 + 27. "until (first Sunday preceding) October 28."